#!/usr/local/bin/tclsh
package require Thread

# проверяем наличие файла со списком сетей
if { $argc == 0 } {
	puts "Usage: $argv0 <netListFile>"
	puts "\tnetListFile : файл со списком сетей, которые нужно просканировать"
	puts "\t              каждая сеть описывается в префиксной форме по одной сети в строке"
	exit 1
}
set file_netList [ lindex $argv 0 ]
if {![ file exists $file_netList ]} {
	puts "Can't find $file_netList"
	exit 1
}

# читаем из файла список сетей, которые нужно просканировать
set netList {}
set fd [ open $file_netList r ]
while {![ eof $fd ]} {
	set newNet [ gets $fd ]
	if { $newNet != "" } {
		lappend netList $newNet
	}
}
close $fd

# основная работа. Загружаем скрипт сканера, инициализируем его и отправляем задачи
source "./scaner.tcl"

set scanerThread [ thread::create -joinable $script_scanerThreadInit ]
thread::send -async $scanerThread [ list init [ thread::id ] 50 ]

foreach nextNetwork $netList {
	thread::send -async $scanerThread [ list scanNetwork $nextNetwork ]
}

# цепляемся к потоку сканера и ждем пока он завершит сканирование
thread::join $scanerThread
